package edu.avans.hartigehap.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import edu.avans.hartigehap.domain.EmptyBillException;
import edu.avans.hartigehap.domain.StateException;
import edu.avans.hartigehap.domain.WebDiscountInterface;
import edu.avans.hartigehap.domain.WebDish;
import edu.avans.hartigehap.domain.WebOrder;

public interface WebOrderService {

	public List<WebOrder> findAll();
	public WebOrder findById(Long id);
	public WebOrder save(WebOrder webOrder);
	public void delete(Long id);
	public Page<WebOrder> findAllByPage(Pageable pageable);
		
	public WebOrder fetchWarmedUp(Long WebOrderId);
	public Long addOrderItem(WebOrder webOrder, String menuItemName);
	public void deleteOrderItem(WebOrder webOrder, String menuItemName);
	public Long decoratePizza(WebOrder order, WebDish pizza, String toppingName);
	public WebOrder createNewWebOrder();
	
	public void submitOrder(WebOrder webOrder);
	public void submitBill(WebOrder webOrder) throws StateException, EmptyBillException;
	
	public void setOrderDiscount(WebOrder webOrder, WebDiscountInterface discount);
}
